Spiral

Rows: 67320 Columns: 16
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr  (1): time
dbl (15): bacia, ano, mes, P1, P2, P2l, P1_min, P2_min, P2l_min, P1_max, P2_...

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data = pred_data[pred_data$bacia %in% X81bacias$Estação, c("bacia", "ano", "mes", "P1", "P2")]
data[is.na(data)] = 0

data_a = data %>%
    mutate(P = P1 + P2) %>%
    group_by(bacia, ano) %>%
    mutate(media_ano = mean(P),
           "P/media_ano"=P/media_ano) %>% select(bacia,ano,mes,P, media_ano,"P/media_ano") %>%
  ungroup()

data_a$bacia = as.factor(data_a$bacia)



#######


axx <- list(
  title = "",
  showgrid = FALSE,
  zeroline = FALSE,
  showticklabels = FALSE
)

axy <- list(
  title = "",
  showgrid = FALSE,
  zeroline = FALSE,
  showticklabels = FALSE
)

axz <- list(
  title = ""
)
a= left_join(
  data_a %>% 
    filter(ano==1985, mes ==1) %>%
    select(bacia,Start=media_ano)
  ,
  data_a #%>% distinct(ano,mes,bacia,media_ano)
) %>%
  
  group_by(bacia, ano) %>%
  mutate(index=row_number(),
         media_ref1985 = round(P/Start,4) ,
         radius = media_ref1985,
         theta = 2 * pi * (index-1)/12) %>%
  mutate(
    x = radius * sin(theta),
    y = radius * cos(theta),
    z = ano + theta/(2 * pi) ,
    label = glue("{mes}/{ano} - {bacia}\n Média|1985 - {media_ref1985*100}%")
  ) %>% arrange(ano, mes) %>% ungroup()
Joining, by = "bacia"
k = a %>% ungroup()

####

fig <- plot_ly(data = k[ (k$bacia %in% levels(k$bacia)[1]) , ] ,
        x = ~x, y = ~y, z = ~z, text = ~label,
        hoverinfo = "text",
        opacity  = .7,
        type = 'scatter3d',
        mode = 'lines',
        connectgaps = TRUE,
        line = list(width = 1, color = ~radius,
                    cmid = 1,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
                    colorscale = list(c(0, "#00ddff"),
                                      c(1, "#0d00ff"),
                                      c(1.5,'#c70000')
                                      ))) %>%
  layout(scene = list(xaxis=axx,
                      yaxis=axy,
                      zaxis=axz))



for(i in 2:length(levels(a$bacia)) ){
  fig <- fig %>% add_trace(data = k[ (k$bacia %in% levels(k$bacia)[i]) , ] ,
                           x = ~x, y = ~y, z = ~z, text = ~label,
                           connectgaps = TRUE,
                           hoverinfo = "text",
                           opacity  = .7,
                           type = 'scatter3d',
                           mode = 'lines',
                           showlegend = F,
                           line = list(width = 2, color = ~radius,
                                       cmid = 0.5,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
                                       colorscale = list(c(0, "#00ddff"),
                                                         c(1, "#0d00ff"),
                                                         c(1.5,'#c70000')
                                       )))
  
}

fig
b= left_join(
  data_a %>% 
    filter(ano==1985, mes ==1) %>%
    select(bacia,Start=media_ano)
  ,
  data_a %>% distinct(ano,bacia, media_ano)
) %>%
  
  group_by(bacia) %>%
  mutate(index=row_number(),
         media_ref1985 = round(media_ano/Start,4) ,
         radius = media_ref1985,
         theta = 2 * pi * (index-1)/66) %>%
  mutate(
    x = radius * sin(theta),
    y = radius * cos(theta),
    z = ano + theta/(2 * pi) ,
    label = glue("{ano} - {bacia}\n Média|1985 - {media_ref1985*100}%")
  ) %>% arrange(ano) %>% ungroup()
Joining, by = "bacia"
k = b %>% ungroup()





fig <- plot_ly(data = k[ (k$bacia %in% levels(k$bacia)[1]) , ] ,
        x = ~x, y = ~y, z = ~z, text = ~label,
        hoverinfo = "text",
        opacity  = .7,
        type = 'scatter3d',
        mode = 'lines',
        connectgaps = TRUE,
        line = list(width = 2, color = ~radius,
                    cmid = 0.5,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
                    colorscale = list(c(0, "#00ddff"),
                                      c(1, "#0d00ff"),
                                      c(1.5,'#c70000')
                                      ))) %>%
  layout(scene = list(xaxis=axx,
                      yaxis=axy,
                      zaxis=axz))



for(i in 2:length(levels(a$bacia)) ){
  fig <- fig %>% add_trace(data = k[ (k$bacia %in% levels(k$bacia)[i]) , ] ,
                           x = ~x, y = ~y, z = ~z, text = ~label,
                           connectgaps = TRUE,
                           hoverinfo = "text",
                           opacity  = .7,
                           type = 'scatter3d',
                           mode = 'lines',
                           showlegend = F,
                           line = list(width = 2, color = ~radius,
                                       cmid = 0.5,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
                                       colorscale = list(c(0, "#00ddff"),
                                                         c(1, "#0d00ff"),
                                                         c(1.5,'#c70000')
                                       )))
  
}

fig